/* First handle caching of the base requests */
if (for_size < 0)
{
- if (orientation == GTK_ORIENTATION_HORIZONTAL)
- {
- cache->cached_width.minimum_size = minimum_size;
- cache->cached_width.natural_size = natural_size;
- cache->cached_base_width = TRUE;
- }
- else
- {
- cache->cached_height.minimum_size = minimum_size;
- cache->cached_height.natural_size = natural_size;
- cache->cached_base_height = TRUE;
- }
+ cache->cached_size[orientation].minimum_size = minimum_size;
+ cache->cached_size[orientation].natural_size = natural_size;
+ cache->flags[orientation].cached_size_valid = TRUE;
return;
}
if (for_size < 0)
{
- if (orientation == GTK_ORIENTATION_HORIZONTAL)
- {
- if (cache->cached_base_width)
- result = &cache->cached_width;
- }
- else
- {
- if (cache->cached_base_height)
- result = &cache->cached_height;
- }
+ if (cache->flags[orientation].cached_size_valid)
+ result = &cache->cached_size[orientation];
}
else
{
SizeRequest **widths;
SizeRequest **heights;
- CachedSize cached_width;
- CachedSize cached_height;
+ CachedSize cached_size[2];
GtkSizeRequestMode request_mode: 3;
guint request_mode_valid : 1;
guint cached_heights : 3;
guint last_cached_width : 3;
guint last_cached_height : 3;
- guint cached_base_width : 1;
- guint cached_base_height : 1;
+ struct {
+ guint cached_size_valid : 1;
+ } flags[2];
} SizeRequestCache;
void _gtk_size_request_cache_init (SizeRequestCache *cache);